2 research outputs found

    Efficient compensation handling via subjective updates

    Get PDF
    Programming abstractions for compensation handling and dynamic update are crucial in specifying reliable interacting systems, such as Collective Adaptive Systems (CAS). Compensations and updates both specify how a system reacts in response to exceptional events. Prior work showed that different semantics for compensation handling can be encoded into a calculus of adaptable processes with objective updates, in which a process is reconfigured by its context. This paper goes further by considering subjective updates, in which, intuitively, a process reconfigures itself. A calculus of adaptable processes with subjective update its introduced, and its expressivity is assessed by encoding two semantics for compensation handling. The resulting encodings are more efficient than those using objective updates: they require less computational steps

    On primitives for compensation handling as adaptable processes

    Get PDF
    Mechanisms for compensation handling and dynamic update are increasingly relevant in the specification of reliable communicating systems. Compensations and updates are intuitively similar: both specify how the behavior of a concurrent system changes at runtime in response to an exceptional event. However, calculi for concurrency with compensations and updates are technically quite different. We compare calculi for concurrency with compensation handling and dynamic update from the standpoint of their relative expressiveness. We develop two encodings of a process calculus with compensation handling into a calculus of adaptable processes. These encodings differ in the target language considered: the first considers adaptable processes with subjective updates in which, intuitively, a process reconfigures itself; the second considers objective updates in which a process is reconfigured by a process in its context. Our main discovery is that subjective updates are more efficient than objective ones in encoding primitives
    corecore